package com.study.map.service;

import com.study.map.dto.RouteWalkingRequest;
import com.study.map.dto.RouteWalkingResponse;
import com.study.map.exception.MapServiceException;

/**
 * 路径规划服务接口
 *
 * @author study
 * @date 2025-08-31
 */
public interface IRouteService {

    /**
     * 路径规划：根据起点和终点规划路径
     *
     * @param request 路径规划请求参数
     * @return 路径规划结果
     * @throws MapServiceException 地图服务异常
     */
    RouteWalkingResponse routePlan(RouteWalkingRequest request) throws MapServiceException;

    /**
     * 路径规划：根据起点和终点规划路径
     *
     * @param origin 出发点坐标
     * @param destination 目的地坐标
     * @param type 路径规划类型（driving, walking, bicycling, transit）
     * @return 路径规划结果
     * @throws MapServiceException 地图服务异常
     */
    RouteWalkingResponse routePlan(String origin, String destination, String type) throws MapServiceException;
}